<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><title>Python: module bilinear_cnn_fc</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head><body bgcolor="#f0f0f8">

<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
<tr bgcolor="#7799ee">
<td valign=bottom>&nbsp;<br>
<font color="#ffffff" face="helvetica, arial">&nbsp;<br><big><big><strong>bilinear_cnn_fc</strong></big></big> (version 1.2, 2018-01-09)</font></td
><td align=right valign=bottom
><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/data/zhangh/product/b-cnn/src/bilinear_cnn_fc.py">/data/zhangh/product/b-cnn/src/bilinear_cnn_fc.py</a></font></td></tr></table>
    <p><tt>Fine-tune&nbsp;the&nbsp;fc&nbsp;layer&nbsp;only&nbsp;for&nbsp;bilinear&nbsp;CNN.<br>
&nbsp;<br>
Usage:<br>
&nbsp;&nbsp;&nbsp;&nbsp;CUDA_VISIBLE_DEVICES=0,1,2,3&nbsp;./src/bilinear_cnn_fc.py&nbsp;--base_lr&nbsp;0.05&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--batch_size&nbsp;64&nbsp;--epochs&nbsp;100&nbsp;--weight_decay&nbsp;5e-4</tt></p>
<p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#aa55cc">
<td colspan=3 valign=bottom>&nbsp;<br>
<font color="#ffffff" face="helvetica, arial"><big><strong>Modules</strong></big></font></td></tr>
    
<tr><td bgcolor="#aa55cc"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="cub200.html">cub200</a><br>
</td><td width="25%" valign=top><a href="os.html">os</a><br>
</td><td width="25%" valign=top><a href="torch.html">torch</a><br>
</td><td width="25%" valign=top><a href="torchvision.html">torchvision</a><br>
</td></tr></table></td></tr></table><p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#ee77aa">
<td colspan=3 valign=bottom>&nbsp;<br>
<font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr>
    
<tr><td bgcolor="#ee77aa"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
<td width="100%"><dl>
<dt><font face="helvetica, arial"><a href="builtins.html#object">builtins.object</a>
</font></dt><dd>
<dl>
<dt><font face="helvetica, arial"><a href="bilinear_cnn_fc.html#BCNNManager">BCNNManager</a>
</font></dt></dl>
</dd>
<dt><font face="helvetica, arial"><a href="torch.nn.modules.module.html#Module">torch.nn.modules.module.Module</a>(<a href="builtins.html#object">builtins.object</a>)
</font></dt><dd>
<dl>
<dt><font face="helvetica, arial"><a href="bilinear_cnn_fc.html#BCNN">BCNN</a>
</font></dt></dl>
</dd>
</dl>
 <p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#ffc8d8">
<td colspan=3 valign=bottom>&nbsp;<br>
<font color="#000000" face="helvetica, arial"><a name="BCNN">class <strong>BCNN</strong></a>(<a href="torch.nn.modules.module.html#Module">torch.nn.modules.module.Module</a>)</font></td></tr>
    
<tr bgcolor="#ffc8d8"><td rowspan=2><tt>&nbsp;&nbsp;&nbsp;</tt></td>
<td colspan=2><tt>B-CNN&nbsp;for&nbsp;CUB200.<br>
&nbsp;<br>
The&nbsp;B-CNN&nbsp;model&nbsp;is&nbsp;illustrated&nbsp;as&nbsp;follows.<br>
conv1^2&nbsp;(64)&nbsp;-&gt;&nbsp;pool1&nbsp;-&gt;&nbsp;conv2^2&nbsp;(128)&nbsp;-&gt;&nbsp;pool2&nbsp;-&gt;&nbsp;conv3^3&nbsp;(256)&nbsp;-&gt;&nbsp;pool3<br>
-&gt;&nbsp;conv4^3&nbsp;(512)&nbsp;-&gt;&nbsp;pool4&nbsp;-&gt;&nbsp;conv5^3&nbsp;(512)&nbsp;-&gt;&nbsp;bilinear&nbsp;pooling<br>
-&gt;&nbsp;sqrt-normalize&nbsp;-&gt;&nbsp;L2-normalize&nbsp;-&gt;&nbsp;fc&nbsp;(200).<br>
The&nbsp;network&nbsp;accepts&nbsp;a&nbsp;3*448*448&nbsp;input,&nbsp;and&nbsp;the&nbsp;pool5&nbsp;activation&nbsp;has&nbsp;shape<br>
512*28*28&nbsp;since&nbsp;we&nbsp;down-sample&nbsp;5&nbsp;times.<br>
&nbsp;<br>
Attributes:<br>
&nbsp;&nbsp;&nbsp;&nbsp;features,&nbsp;torch.nn.<a href="torch.nn.modules.module.html#Module">Module</a>:&nbsp;Convolution&nbsp;and&nbsp;pooling&nbsp;layers.<br>
&nbsp;&nbsp;&nbsp;&nbsp;fc,&nbsp;torch.nn.<a href="torch.nn.modules.module.html#Module">Module</a>:&nbsp;200.<br>&nbsp;</tt></td></tr>
<tr><td>&nbsp;</td>
<td width="100%"><dl><dt>Method resolution order:</dt>
<dd><a href="bilinear_cnn_fc.html#BCNN">BCNN</a></dd>
<dd><a href="torch.nn.modules.module.html#Module">torch.nn.modules.module.Module</a></dd>
<dd><a href="builtins.html#object">builtins.object</a></dd>
</dl>
<hr>
Methods defined here:<br>
<dl><dt><a name="BCNN-__init__"><strong>__init__</strong></a>(self)</dt><dd><tt>Declare&nbsp;all&nbsp;needed&nbsp;layers.</tt></dd></dl>

<dl><dt><a name="BCNN-forward"><strong>forward</strong></a>(self, X)</dt><dd><tt>Forward&nbsp;pass&nbsp;of&nbsp;the&nbsp;network.<br>
&nbsp;<br>
Args:<br>
&nbsp;&nbsp;&nbsp;&nbsp;X,&nbsp;torch.autograd.Variable&nbsp;of&nbsp;shape&nbsp;N*3*448*448.<br>
&nbsp;<br>
Returns:<br>
&nbsp;&nbsp;&nbsp;&nbsp;Score,&nbsp;torch.autograd.Variable&nbsp;of&nbsp;shape&nbsp;N*200.</tt></dd></dl>

<hr>
Methods inherited from <a href="torch.nn.modules.module.html#Module">torch.nn.modules.module.Module</a>:<br>
<dl><dt><a name="BCNN-__call__"><strong>__call__</strong></a>(self, *input, **kwargs)</dt><dd><tt>Call&nbsp;self&nbsp;as&nbsp;a&nbsp;function.</tt></dd></dl>

<dl><dt><a name="BCNN-__delattr__"><strong>__delattr__</strong></a>(self, name)</dt><dd><tt>Implement&nbsp;delattr(self,&nbsp;name).</tt></dd></dl>

<dl><dt><a name="BCNN-__dir__"><strong>__dir__</strong></a>(self)</dt><dd><tt><a href="#BCNN-__dir__">__dir__</a>()&nbsp;-&gt;&nbsp;list<br>
default&nbsp;dir()&nbsp;implementation</tt></dd></dl>

<dl><dt><a name="BCNN-__getattr__"><strong>__getattr__</strong></a>(self, name)</dt></dl>

<dl><dt><a name="BCNN-__repr__"><strong>__repr__</strong></a>(self)</dt><dd><tt>Return&nbsp;repr(self).</tt></dd></dl>

<dl><dt><a name="BCNN-__setattr__"><strong>__setattr__</strong></a>(self, name, value)</dt><dd><tt>Implement&nbsp;setattr(self,&nbsp;name,&nbsp;value).</tt></dd></dl>

<dl><dt><a name="BCNN-__setstate__"><strong>__setstate__</strong></a>(self, state)</dt></dl>

<dl><dt><a name="BCNN-add_module"><strong>add_module</strong></a>(self, name, module)</dt><dd><tt>Adds&nbsp;a&nbsp;child&nbsp;module&nbsp;to&nbsp;the&nbsp;current&nbsp;module.<br>
&nbsp;<br>
The&nbsp;module&nbsp;can&nbsp;be&nbsp;accessed&nbsp;as&nbsp;an&nbsp;attribute&nbsp;using&nbsp;the&nbsp;given&nbsp;name.<br>
&nbsp;<br>
Args:<br>
&nbsp;&nbsp;&nbsp;&nbsp;name&nbsp;(string):&nbsp;name&nbsp;of&nbsp;the&nbsp;child&nbsp;module.&nbsp;The&nbsp;child&nbsp;module&nbsp;can&nbsp;be<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;accessed&nbsp;from&nbsp;this&nbsp;module&nbsp;using&nbsp;the&nbsp;given&nbsp;name<br>
&nbsp;&nbsp;&nbsp;&nbsp;parameter&nbsp;(<a href="torch.nn.modules.module.html#Module">Module</a>):&nbsp;child&nbsp;module&nbsp;to&nbsp;be&nbsp;added&nbsp;to&nbsp;the&nbsp;module.</tt></dd></dl>

<dl><dt><a name="BCNN-apply"><strong>apply</strong></a>(self, fn)</dt><dd><tt>Applies&nbsp;``fn``&nbsp;recursively&nbsp;to&nbsp;every&nbsp;submodule&nbsp;(as&nbsp;returned&nbsp;by&nbsp;``.<a href="#BCNN-children">children</a>()``)<br>
as&nbsp;well&nbsp;as&nbsp;self.&nbsp;Typical&nbsp;use&nbsp;includes&nbsp;initializing&nbsp;the&nbsp;parameters&nbsp;of&nbsp;a&nbsp;model<br>
(see&nbsp;also&nbsp;:ref:`torch-nn-init`).<br>
&nbsp;<br>
Args:<br>
&nbsp;&nbsp;&nbsp;&nbsp;fn&nbsp;(:class:`<a href="torch.nn.modules.module.html#Module">Module</a>`&nbsp;-&gt;&nbsp;None):&nbsp;function&nbsp;to&nbsp;be&nbsp;applied&nbsp;to&nbsp;each&nbsp;submodule<br>
&nbsp;<br>
Returns:<br>
&nbsp;&nbsp;&nbsp;&nbsp;<a href="torch.nn.modules.module.html#Module">Module</a>:&nbsp;self<br>
&nbsp;<br>
Example:<br>
&nbsp;&nbsp;&nbsp;&nbsp;&gt;&gt;&gt;&nbsp;def&nbsp;init_weights(m):<br>
&nbsp;&nbsp;&nbsp;&nbsp;&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print(m)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;<a href="#BCNN-type">type</a>(m)&nbsp;==&nbsp;nn.Linear:<br>
&nbsp;&nbsp;&nbsp;&nbsp;&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m.weight.data.fill_(1.0)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print(m.weight)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&gt;&gt;&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&gt;&gt;&gt;&nbsp;net&nbsp;=&nbsp;nn.Sequential(nn.Linear(2,&nbsp;2),&nbsp;nn.Linear(2,&nbsp;2))<br>
&nbsp;&nbsp;&nbsp;&nbsp;&gt;&gt;&gt;&nbsp;net.<a href="#BCNN-apply">apply</a>(init_weights)<br>
&nbsp;&nbsp;&nbsp;&nbsp;Linear&nbsp;(2&nbsp;-&gt;&nbsp;2)<br>
&nbsp;&nbsp;&nbsp;&nbsp;Parameter&nbsp;containing:<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1&nbsp;&nbsp;1<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1&nbsp;&nbsp;1<br>
&nbsp;&nbsp;&nbsp;&nbsp;[torch.FloatTensor&nbsp;of&nbsp;size&nbsp;2x2]<br>
&nbsp;&nbsp;&nbsp;&nbsp;Linear&nbsp;(2&nbsp;-&gt;&nbsp;2)<br>
&nbsp;&nbsp;&nbsp;&nbsp;Parameter&nbsp;containing:<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1&nbsp;&nbsp;1<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1&nbsp;&nbsp;1<br>
&nbsp;&nbsp;&nbsp;&nbsp;[torch.FloatTensor&nbsp;of&nbsp;size&nbsp;2x2]<br>
&nbsp;&nbsp;&nbsp;&nbsp;Sequential&nbsp;(<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(0):&nbsp;Linear&nbsp;(2&nbsp;-&gt;&nbsp;2)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(1):&nbsp;Linear&nbsp;(2&nbsp;-&gt;&nbsp;2)<br>
&nbsp;&nbsp;&nbsp;&nbsp;)</tt></dd></dl>

<dl><dt><a name="BCNN-children"><strong>children</strong></a>(self)</dt><dd><tt>Returns&nbsp;an&nbsp;iterator&nbsp;over&nbsp;immediate&nbsp;children&nbsp;modules.<br>
&nbsp;<br>
Yields:<br>
&nbsp;&nbsp;&nbsp;&nbsp;<a href="torch.nn.modules.module.html#Module">Module</a>:&nbsp;a&nbsp;child&nbsp;module</tt></dd></dl>

<dl><dt><a name="BCNN-cpu"><strong>cpu</strong></a>(self)</dt><dd><tt>Moves&nbsp;all&nbsp;model&nbsp;parameters&nbsp;and&nbsp;buffers&nbsp;to&nbsp;the&nbsp;CPU.<br>
&nbsp;<br>
Returns:<br>
&nbsp;&nbsp;&nbsp;&nbsp;<a href="torch.nn.modules.module.html#Module">Module</a>:&nbsp;self</tt></dd></dl>

<dl><dt><a name="BCNN-cuda"><strong>cuda</strong></a>(self, device=None)</dt><dd><tt>Moves&nbsp;all&nbsp;model&nbsp;parameters&nbsp;and&nbsp;buffers&nbsp;to&nbsp;the&nbsp;GPU.<br>
&nbsp;<br>
This&nbsp;also&nbsp;makes&nbsp;associated&nbsp;parameters&nbsp;and&nbsp;buffers&nbsp;different&nbsp;objects.&nbsp;So<br>
it&nbsp;should&nbsp;be&nbsp;called&nbsp;before&nbsp;constructing&nbsp;optimizer&nbsp;if&nbsp;the&nbsp;module&nbsp;will<br>
live&nbsp;on&nbsp;GPU&nbsp;while&nbsp;being&nbsp;optimized.<br>
&nbsp;<br>
Arguments:<br>
&nbsp;&nbsp;&nbsp;&nbsp;device&nbsp;(int,&nbsp;optional):&nbsp;if&nbsp;specified,&nbsp;all&nbsp;parameters&nbsp;will&nbsp;be<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;copied&nbsp;to&nbsp;that&nbsp;device<br>
&nbsp;<br>
Returns:<br>
&nbsp;&nbsp;&nbsp;&nbsp;<a href="torch.nn.modules.module.html#Module">Module</a>:&nbsp;self</tt></dd></dl>

<dl><dt><a name="BCNN-double"><strong>double</strong></a>(self)</dt><dd><tt>Casts&nbsp;all&nbsp;parameters&nbsp;and&nbsp;buffers&nbsp;to&nbsp;double&nbsp;datatype.<br>
&nbsp;<br>
Returns:<br>
&nbsp;&nbsp;&nbsp;&nbsp;<a href="torch.nn.modules.module.html#Module">Module</a>:&nbsp;self</tt></dd></dl>

<dl><dt><a name="BCNN-eval"><strong>eval</strong></a>(self)</dt><dd><tt>Sets&nbsp;the&nbsp;module&nbsp;in&nbsp;evaluation&nbsp;mode.<br>
&nbsp;<br>
This&nbsp;has&nbsp;any&nbsp;effect&nbsp;only&nbsp;on&nbsp;modules&nbsp;such&nbsp;as&nbsp;Dropout&nbsp;or&nbsp;BatchNorm.</tt></dd></dl>

<dl><dt><a name="BCNN-float"><strong>float</strong></a>(self)</dt><dd><tt>Casts&nbsp;all&nbsp;parameters&nbsp;and&nbsp;buffers&nbsp;to&nbsp;float&nbsp;datatype.<br>
&nbsp;<br>
Returns:<br>
&nbsp;&nbsp;&nbsp;&nbsp;<a href="torch.nn.modules.module.html#Module">Module</a>:&nbsp;self</tt></dd></dl>

<dl><dt><a name="BCNN-half"><strong>half</strong></a>(self)</dt><dd><tt>Casts&nbsp;all&nbsp;parameters&nbsp;and&nbsp;buffers&nbsp;to&nbsp;half&nbsp;datatype.<br>
&nbsp;<br>
Returns:<br>
&nbsp;&nbsp;&nbsp;&nbsp;<a href="torch.nn.modules.module.html#Module">Module</a>:&nbsp;self</tt></dd></dl>

<dl><dt><a name="BCNN-load_state_dict"><strong>load_state_dict</strong></a>(self, state_dict, strict=True)</dt><dd><tt>Copies&nbsp;parameters&nbsp;and&nbsp;buffers&nbsp;from&nbsp;:attr:`state_dict`&nbsp;into<br>
this&nbsp;module&nbsp;and&nbsp;its&nbsp;descendants.&nbsp;If&nbsp;:attr:`strict`&nbsp;is&nbsp;``True``&nbsp;then<br>
the&nbsp;keys&nbsp;of&nbsp;:attr:`state_dict`&nbsp;must&nbsp;exactly&nbsp;match&nbsp;the&nbsp;keys&nbsp;returned<br>
by&nbsp;this&nbsp;module's&nbsp;:func:`<a href="#BCNN-state_dict">state_dict</a>()`&nbsp;function.<br>
&nbsp;<br>
Arguments:<br>
&nbsp;&nbsp;&nbsp;&nbsp;state_dict&nbsp;(dict):&nbsp;A&nbsp;dict&nbsp;containing&nbsp;parameters&nbsp;and<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;persistent&nbsp;buffers.<br>
&nbsp;&nbsp;&nbsp;&nbsp;strict&nbsp;(bool):&nbsp;Strictly&nbsp;enforce&nbsp;that&nbsp;the&nbsp;keys&nbsp;in&nbsp;:attr:`state_dict`<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;match&nbsp;the&nbsp;keys&nbsp;returned&nbsp;by&nbsp;this&nbsp;module's&nbsp;`:func:`<a href="#BCNN-state_dict">state_dict</a>()`<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;function.</tt></dd></dl>

<dl><dt><a name="BCNN-modules"><strong>modules</strong></a>(self)</dt><dd><tt>Returns&nbsp;an&nbsp;iterator&nbsp;over&nbsp;all&nbsp;modules&nbsp;in&nbsp;the&nbsp;network.<br>
&nbsp;<br>
Yields:<br>
&nbsp;&nbsp;&nbsp;&nbsp;<a href="torch.nn.modules.module.html#Module">Module</a>:&nbsp;a&nbsp;module&nbsp;in&nbsp;the&nbsp;network<br>
&nbsp;<br>
Note:<br>
&nbsp;&nbsp;&nbsp;&nbsp;Duplicate&nbsp;modules&nbsp;are&nbsp;returned&nbsp;only&nbsp;once.&nbsp;In&nbsp;the&nbsp;following<br>
&nbsp;&nbsp;&nbsp;&nbsp;example,&nbsp;``l``&nbsp;will&nbsp;be&nbsp;returned&nbsp;only&nbsp;once.<br>
&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&gt;&gt;&gt;&nbsp;l&nbsp;=&nbsp;nn.Linear(2,&nbsp;2)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&gt;&gt;&gt;&nbsp;net&nbsp;=&nbsp;nn.Sequential(l,&nbsp;l)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&gt;&gt;&gt;&nbsp;for&nbsp;idx,&nbsp;m&nbsp;in&nbsp;enumerate(net.<a href="#BCNN-modules">modules</a>()):<br>
&nbsp;&nbsp;&nbsp;&nbsp;&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print(idx,&nbsp;'-&gt;',&nbsp;m)<br>
&nbsp;&nbsp;&nbsp;&nbsp;0&nbsp;-&gt;&nbsp;Sequential&nbsp;(<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(0):&nbsp;Linear&nbsp;(2&nbsp;-&gt;&nbsp;2)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(1):&nbsp;Linear&nbsp;(2&nbsp;-&gt;&nbsp;2)<br>
&nbsp;&nbsp;&nbsp;&nbsp;)<br>
&nbsp;&nbsp;&nbsp;&nbsp;1&nbsp;-&gt;&nbsp;Linear&nbsp;(2&nbsp;-&gt;&nbsp;2)</tt></dd></dl>

<dl><dt><a name="BCNN-named_children"><strong>named_children</strong></a>(self)</dt><dd><tt>Returns&nbsp;an&nbsp;iterator&nbsp;over&nbsp;immediate&nbsp;children&nbsp;modules,&nbsp;yielding&nbsp;both<br>
the&nbsp;name&nbsp;of&nbsp;the&nbsp;module&nbsp;as&nbsp;well&nbsp;as&nbsp;the&nbsp;module&nbsp;itself.<br>
&nbsp;<br>
Yields:<br>
&nbsp;&nbsp;&nbsp;&nbsp;(string,&nbsp;<a href="torch.nn.modules.module.html#Module">Module</a>):&nbsp;Tuple&nbsp;containing&nbsp;a&nbsp;name&nbsp;and&nbsp;child&nbsp;module<br>
&nbsp;<br>
Example:<br>
&nbsp;&nbsp;&nbsp;&nbsp;&gt;&gt;&gt;&nbsp;for&nbsp;name,&nbsp;module&nbsp;in&nbsp;model.<a href="#BCNN-named_children">named_children</a>():<br>
&nbsp;&nbsp;&nbsp;&nbsp;&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;name&nbsp;in&nbsp;['conv4',&nbsp;'conv5']:<br>
&nbsp;&nbsp;&nbsp;&nbsp;&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print(module)</tt></dd></dl>

<dl><dt><a name="BCNN-named_modules"><strong>named_modules</strong></a>(self, memo=None, prefix='')</dt><dd><tt>Returns&nbsp;an&nbsp;iterator&nbsp;over&nbsp;all&nbsp;modules&nbsp;in&nbsp;the&nbsp;network,&nbsp;yielding<br>
both&nbsp;the&nbsp;name&nbsp;of&nbsp;the&nbsp;module&nbsp;as&nbsp;well&nbsp;as&nbsp;the&nbsp;module&nbsp;itself.<br>
&nbsp;<br>
Yields:<br>
&nbsp;&nbsp;&nbsp;&nbsp;(string,&nbsp;<a href="torch.nn.modules.module.html#Module">Module</a>):&nbsp;Tuple&nbsp;of&nbsp;name&nbsp;and&nbsp;module<br>
&nbsp;<br>
Note:<br>
&nbsp;&nbsp;&nbsp;&nbsp;Duplicate&nbsp;modules&nbsp;are&nbsp;returned&nbsp;only&nbsp;once.&nbsp;In&nbsp;the&nbsp;following<br>
&nbsp;&nbsp;&nbsp;&nbsp;example,&nbsp;``l``&nbsp;will&nbsp;be&nbsp;returned&nbsp;only&nbsp;once.<br>
&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&gt;&gt;&gt;&nbsp;l&nbsp;=&nbsp;nn.Linear(2,&nbsp;2)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&gt;&gt;&gt;&nbsp;net&nbsp;=&nbsp;nn.Sequential(l,&nbsp;l)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&gt;&gt;&gt;&nbsp;for&nbsp;idx,&nbsp;m&nbsp;in&nbsp;enumerate(net.<a href="#BCNN-named_modules">named_modules</a>()):<br>
&nbsp;&nbsp;&nbsp;&nbsp;&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print(idx,&nbsp;'-&gt;',&nbsp;m)<br>
&nbsp;&nbsp;&nbsp;&nbsp;0&nbsp;-&gt;&nbsp;('',&nbsp;Sequential&nbsp;(<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(0):&nbsp;Linear&nbsp;(2&nbsp;-&gt;&nbsp;2)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(1):&nbsp;Linear&nbsp;(2&nbsp;-&gt;&nbsp;2)<br>
&nbsp;&nbsp;&nbsp;&nbsp;))<br>
&nbsp;&nbsp;&nbsp;&nbsp;1&nbsp;-&gt;&nbsp;('0',&nbsp;Linear&nbsp;(2&nbsp;-&gt;&nbsp;2))</tt></dd></dl>

<dl><dt><a name="BCNN-named_parameters"><strong>named_parameters</strong></a>(self, memo=None, prefix='')</dt><dd><tt>Returns&nbsp;an&nbsp;iterator&nbsp;over&nbsp;module&nbsp;parameters,&nbsp;yielding&nbsp;both&nbsp;the<br>
name&nbsp;of&nbsp;the&nbsp;parameter&nbsp;as&nbsp;well&nbsp;as&nbsp;the&nbsp;parameter&nbsp;itself<br>
&nbsp;<br>
Yields:<br>
&nbsp;&nbsp;&nbsp;&nbsp;(string,&nbsp;Parameter):&nbsp;Tuple&nbsp;containing&nbsp;the&nbsp;name&nbsp;and&nbsp;parameter<br>
&nbsp;<br>
Example:<br>
&nbsp;&nbsp;&nbsp;&nbsp;&gt;&gt;&gt;&nbsp;for&nbsp;name,&nbsp;param&nbsp;in&nbsp;self.<a href="#BCNN-named_parameters">named_parameters</a>():<br>
&nbsp;&nbsp;&nbsp;&nbsp;&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;name&nbsp;in&nbsp;['bias']:<br>
&nbsp;&nbsp;&nbsp;&nbsp;&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print(param.size())</tt></dd></dl>

<dl><dt><a name="BCNN-parameters"><strong>parameters</strong></a>(self)</dt><dd><tt>Returns&nbsp;an&nbsp;iterator&nbsp;over&nbsp;module&nbsp;parameters.<br>
&nbsp;<br>
This&nbsp;is&nbsp;typically&nbsp;passed&nbsp;to&nbsp;an&nbsp;optimizer.<br>
&nbsp;<br>
Yields:<br>
&nbsp;&nbsp;&nbsp;&nbsp;Parameter:&nbsp;module&nbsp;parameter<br>
&nbsp;<br>
Example:<br>
&nbsp;&nbsp;&nbsp;&nbsp;&gt;&gt;&gt;&nbsp;for&nbsp;param&nbsp;in&nbsp;model.<a href="#BCNN-parameters">parameters</a>():<br>
&nbsp;&nbsp;&nbsp;&nbsp;&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print(<a href="#BCNN-type">type</a>(param.data),&nbsp;param.size())<br>
&nbsp;&nbsp;&nbsp;&nbsp;&lt;class&nbsp;'torch.FloatTensor'&gt;&nbsp;(20L,)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&lt;class&nbsp;'torch.FloatTensor'&gt;&nbsp;(20L,&nbsp;1L,&nbsp;5L,&nbsp;5L)</tt></dd></dl>

<dl><dt><a name="BCNN-register_backward_hook"><strong>register_backward_hook</strong></a>(self, hook)</dt><dd><tt>Registers&nbsp;a&nbsp;backward&nbsp;hook&nbsp;on&nbsp;the&nbsp;module.<br>
&nbsp;<br>
The&nbsp;hook&nbsp;will&nbsp;be&nbsp;called&nbsp;every&nbsp;time&nbsp;the&nbsp;gradients&nbsp;with&nbsp;respect&nbsp;to&nbsp;module<br>
inputs&nbsp;are&nbsp;computed.&nbsp;The&nbsp;hook&nbsp;should&nbsp;have&nbsp;the&nbsp;following&nbsp;signature::<br>
&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;hook(module,&nbsp;grad_input,&nbsp;grad_output)&nbsp;-&gt;&nbsp;Tensor&nbsp;or&nbsp;None<br>
&nbsp;<br>
The&nbsp;:attr:`grad_input`&nbsp;and&nbsp;:attr:`grad_output`&nbsp;may&nbsp;be&nbsp;tuples&nbsp;if&nbsp;the<br>
module&nbsp;has&nbsp;multiple&nbsp;inputs&nbsp;or&nbsp;outputs.&nbsp;The&nbsp;hook&nbsp;should&nbsp;not&nbsp;modify&nbsp;its<br>
arguments,&nbsp;but&nbsp;it&nbsp;can&nbsp;optionally&nbsp;return&nbsp;a&nbsp;new&nbsp;gradient&nbsp;with&nbsp;respect&nbsp;to<br>
input&nbsp;that&nbsp;will&nbsp;be&nbsp;used&nbsp;in&nbsp;place&nbsp;of&nbsp;:attr:`grad_input`&nbsp;in&nbsp;subsequent<br>
computations.<br>
&nbsp;<br>
Returns:<br>
&nbsp;&nbsp;&nbsp;&nbsp;:class:`torch.utils.hooks.RemovableHandle`:<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a&nbsp;handle&nbsp;that&nbsp;can&nbsp;be&nbsp;used&nbsp;to&nbsp;remove&nbsp;the&nbsp;added&nbsp;hook&nbsp;by&nbsp;calling<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;``handle.remove()``</tt></dd></dl>

<dl><dt><a name="BCNN-register_buffer"><strong>register_buffer</strong></a>(self, name, tensor)</dt><dd><tt>Adds&nbsp;a&nbsp;persistent&nbsp;buffer&nbsp;to&nbsp;the&nbsp;module.<br>
&nbsp;<br>
This&nbsp;is&nbsp;typically&nbsp;used&nbsp;to&nbsp;register&nbsp;a&nbsp;buffer&nbsp;that&nbsp;should&nbsp;not&nbsp;to&nbsp;be<br>
considered&nbsp;a&nbsp;model&nbsp;parameter.&nbsp;For&nbsp;example,&nbsp;BatchNorm's&nbsp;``running_mean``<br>
is&nbsp;not&nbsp;a&nbsp;parameter,&nbsp;but&nbsp;is&nbsp;part&nbsp;of&nbsp;the&nbsp;persistent&nbsp;state.<br>
&nbsp;<br>
Buffers&nbsp;can&nbsp;be&nbsp;accessed&nbsp;as&nbsp;attributes&nbsp;using&nbsp;given&nbsp;names.<br>
&nbsp;<br>
Args:<br>
&nbsp;&nbsp;&nbsp;&nbsp;name&nbsp;(string):&nbsp;name&nbsp;of&nbsp;the&nbsp;buffer.&nbsp;The&nbsp;buffer&nbsp;can&nbsp;be&nbsp;accessed<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;from&nbsp;this&nbsp;module&nbsp;using&nbsp;the&nbsp;given&nbsp;name<br>
&nbsp;&nbsp;&nbsp;&nbsp;tensor&nbsp;(Tensor):&nbsp;buffer&nbsp;to&nbsp;be&nbsp;registered.<br>
&nbsp;<br>
Example:<br>
&nbsp;&nbsp;&nbsp;&nbsp;&gt;&gt;&gt;&nbsp;self.<a href="#BCNN-register_buffer">register_buffer</a>('running_mean',&nbsp;torch.zeros(num_features))</tt></dd></dl>

<dl><dt><a name="BCNN-register_forward_hook"><strong>register_forward_hook</strong></a>(self, hook)</dt><dd><tt>Registers&nbsp;a&nbsp;forward&nbsp;hook&nbsp;on&nbsp;the&nbsp;module.<br>
&nbsp;<br>
The&nbsp;hook&nbsp;will&nbsp;be&nbsp;called&nbsp;every&nbsp;time&nbsp;after&nbsp;:func:`forward`&nbsp;has&nbsp;computed&nbsp;an&nbsp;output.<br>
It&nbsp;should&nbsp;have&nbsp;the&nbsp;following&nbsp;signature::<br>
&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;hook(module,&nbsp;input,&nbsp;output)&nbsp;-&gt;&nbsp;None<br>
&nbsp;<br>
The&nbsp;hook&nbsp;should&nbsp;not&nbsp;modify&nbsp;the&nbsp;input&nbsp;or&nbsp;output.<br>
&nbsp;<br>
Returns:<br>
&nbsp;&nbsp;&nbsp;&nbsp;:class:`torch.utils.hooks.RemovableHandle`:<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a&nbsp;handle&nbsp;that&nbsp;can&nbsp;be&nbsp;used&nbsp;to&nbsp;remove&nbsp;the&nbsp;added&nbsp;hook&nbsp;by&nbsp;calling<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;``handle.remove()``</tt></dd></dl>

<dl><dt><a name="BCNN-register_forward_pre_hook"><strong>register_forward_pre_hook</strong></a>(self, hook)</dt><dd><tt>Registers&nbsp;a&nbsp;forward&nbsp;pre-hook&nbsp;on&nbsp;the&nbsp;module.<br>
&nbsp;<br>
The&nbsp;hook&nbsp;will&nbsp;be&nbsp;called&nbsp;every&nbsp;time&nbsp;before&nbsp;:func:`forward`&nbsp;is&nbsp;invoked.<br>
It&nbsp;should&nbsp;have&nbsp;the&nbsp;following&nbsp;signature::<br>
&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;hook(module,&nbsp;input)&nbsp;-&gt;&nbsp;None<br>
&nbsp;<br>
The&nbsp;hook&nbsp;should&nbsp;not&nbsp;modify&nbsp;the&nbsp;input.<br>
&nbsp;<br>
Returns:<br>
&nbsp;&nbsp;&nbsp;&nbsp;:class:`torch.utils.hooks.RemovableHandle`:<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a&nbsp;handle&nbsp;that&nbsp;can&nbsp;be&nbsp;used&nbsp;to&nbsp;remove&nbsp;the&nbsp;added&nbsp;hook&nbsp;by&nbsp;calling<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;``handle.remove()``</tt></dd></dl>

<dl><dt><a name="BCNN-register_parameter"><strong>register_parameter</strong></a>(self, name, param)</dt><dd><tt>Adds&nbsp;a&nbsp;parameter&nbsp;to&nbsp;the&nbsp;module.<br>
&nbsp;<br>
The&nbsp;parameter&nbsp;can&nbsp;be&nbsp;accessed&nbsp;as&nbsp;an&nbsp;attribute&nbsp;using&nbsp;given&nbsp;name.<br>
&nbsp;<br>
Args:<br>
&nbsp;&nbsp;&nbsp;&nbsp;name&nbsp;(string):&nbsp;name&nbsp;of&nbsp;the&nbsp;parameter.&nbsp;The&nbsp;parameter&nbsp;can&nbsp;be&nbsp;accessed<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;from&nbsp;this&nbsp;module&nbsp;using&nbsp;the&nbsp;given&nbsp;name<br>
&nbsp;&nbsp;&nbsp;&nbsp;parameter&nbsp;(Parameter):&nbsp;parameter&nbsp;to&nbsp;be&nbsp;added&nbsp;to&nbsp;the&nbsp;module.</tt></dd></dl>

<dl><dt><a name="BCNN-share_memory"><strong>share_memory</strong></a>(self)</dt></dl>

<dl><dt><a name="BCNN-state_dict"><strong>state_dict</strong></a>(self, destination=None, prefix='', keep_vars=False)</dt><dd><tt>Returns&nbsp;a&nbsp;dictionary&nbsp;containing&nbsp;a&nbsp;whole&nbsp;state&nbsp;of&nbsp;the&nbsp;module.<br>
&nbsp;<br>
Both&nbsp;parameters&nbsp;and&nbsp;persistent&nbsp;buffers&nbsp;(e.g.&nbsp;running&nbsp;averages)&nbsp;are<br>
included.&nbsp;Keys&nbsp;are&nbsp;corresponding&nbsp;parameter&nbsp;and&nbsp;buffer&nbsp;names.<br>
&nbsp;<br>
When&nbsp;keep_vars&nbsp;is&nbsp;``True``,&nbsp;it&nbsp;returns&nbsp;a&nbsp;Variable&nbsp;for&nbsp;each&nbsp;parameter<br>
(rather&nbsp;than&nbsp;a&nbsp;Tensor).<br>
&nbsp;<br>
Args:<br>
&nbsp;&nbsp;&nbsp;&nbsp;destination&nbsp;(dict,&nbsp;optional):<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;not&nbsp;None,&nbsp;the&nbsp;return&nbsp;dictionary&nbsp;is&nbsp;stored&nbsp;into&nbsp;destination.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Default:&nbsp;None<br>
&nbsp;&nbsp;&nbsp;&nbsp;prefix&nbsp;(string,&nbsp;optional):&nbsp;Adds&nbsp;a&nbsp;prefix&nbsp;to&nbsp;the&nbsp;key&nbsp;(name)&nbsp;of&nbsp;every<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;parameter&nbsp;and&nbsp;buffer&nbsp;in&nbsp;the&nbsp;result&nbsp;dictionary.&nbsp;Default:&nbsp;''<br>
&nbsp;&nbsp;&nbsp;&nbsp;keep_vars&nbsp;(bool,&nbsp;optional):&nbsp;if&nbsp;``True``,&nbsp;returns&nbsp;a&nbsp;Variable&nbsp;for&nbsp;each<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;parameter.&nbsp;If&nbsp;``False``,&nbsp;returns&nbsp;a&nbsp;Tensor&nbsp;for&nbsp;each&nbsp;parameter.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Default:&nbsp;``False``<br>
&nbsp;<br>
Returns:<br>
&nbsp;&nbsp;&nbsp;&nbsp;dict:<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a&nbsp;dictionary&nbsp;containing&nbsp;a&nbsp;whole&nbsp;state&nbsp;of&nbsp;the&nbsp;module<br>
&nbsp;<br>
Example:<br>
&nbsp;&nbsp;&nbsp;&nbsp;&gt;&gt;&gt;&nbsp;module.<a href="#BCNN-state_dict">state_dict</a>().keys()<br>
&nbsp;&nbsp;&nbsp;&nbsp;['bias',&nbsp;'weight']</tt></dd></dl>

<dl><dt><a name="BCNN-train"><strong>train</strong></a>(self, mode=True)</dt><dd><tt>Sets&nbsp;the&nbsp;module&nbsp;in&nbsp;training&nbsp;mode.<br>
&nbsp;<br>
This&nbsp;has&nbsp;any&nbsp;effect&nbsp;only&nbsp;on&nbsp;modules&nbsp;such&nbsp;as&nbsp;Dropout&nbsp;or&nbsp;BatchNorm.<br>
&nbsp;<br>
Returns:<br>
&nbsp;&nbsp;&nbsp;&nbsp;<a href="torch.nn.modules.module.html#Module">Module</a>:&nbsp;self</tt></dd></dl>

<dl><dt><a name="BCNN-type"><strong>type</strong></a>(self, dst_type)</dt><dd><tt>Casts&nbsp;all&nbsp;parameters&nbsp;and&nbsp;buffers&nbsp;to&nbsp;dst_type.<br>
&nbsp;<br>
Arguments:<br>
&nbsp;&nbsp;&nbsp;&nbsp;dst_type&nbsp;(type&nbsp;or&nbsp;string):&nbsp;the&nbsp;desired&nbsp;type<br>
&nbsp;<br>
Returns:<br>
&nbsp;&nbsp;&nbsp;&nbsp;<a href="torch.nn.modules.module.html#Module">Module</a>:&nbsp;self</tt></dd></dl>

<dl><dt><a name="BCNN-zero_grad"><strong>zero_grad</strong></a>(self)</dt><dd><tt>Sets&nbsp;gradients&nbsp;of&nbsp;all&nbsp;model&nbsp;parameters&nbsp;to&nbsp;zero.</tt></dd></dl>

<hr>
Data descriptors inherited from <a href="torch.nn.modules.module.html#Module">torch.nn.modules.module.Module</a>:<br>
<dl><dt><strong>__dict__</strong></dt>
<dd><tt>dictionary&nbsp;for&nbsp;instance&nbsp;variables&nbsp;(if&nbsp;defined)</tt></dd>
</dl>
<dl><dt><strong>__weakref__</strong></dt>
<dd><tt>list&nbsp;of&nbsp;weak&nbsp;references&nbsp;to&nbsp;the&nbsp;object&nbsp;(if&nbsp;defined)</tt></dd>
</dl>
<hr>
Data and other attributes inherited from <a href="torch.nn.modules.module.html#Module">torch.nn.modules.module.Module</a>:<br>
<dl><dt><strong>dump_patches</strong> = False</dl>

</td></tr></table> <p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#ffc8d8">
<td colspan=3 valign=bottom>&nbsp;<br>
<font color="#000000" face="helvetica, arial"><a name="BCNNManager">class <strong>BCNNManager</strong></a>(<a href="builtins.html#object">builtins.object</a>)</font></td></tr>
    
<tr bgcolor="#ffc8d8"><td rowspan=2><tt>&nbsp;&nbsp;&nbsp;</tt></td>
<td colspan=2><tt>Manager&nbsp;class&nbsp;to&nbsp;train&nbsp;bilinear&nbsp;CNN.<br>
&nbsp;<br>
Attributes:<br>
&nbsp;&nbsp;&nbsp;&nbsp;_options:&nbsp;Hyperparameters.<br>
&nbsp;&nbsp;&nbsp;&nbsp;_path:&nbsp;Useful&nbsp;paths.<br>
&nbsp;&nbsp;&nbsp;&nbsp;_net:&nbsp;Bilinear&nbsp;CNN.<br>
&nbsp;&nbsp;&nbsp;&nbsp;_criterion:&nbsp;Cross-entropy&nbsp;loss.<br>
&nbsp;&nbsp;&nbsp;&nbsp;_solver:&nbsp;SGD&nbsp;with&nbsp;momentum.<br>
&nbsp;&nbsp;&nbsp;&nbsp;_scheduler:&nbsp;Reduce&nbsp;learning&nbsp;rate&nbsp;by&nbsp;a&nbsp;fator&nbsp;of&nbsp;0.1&nbsp;when&nbsp;plateau.<br>
&nbsp;&nbsp;&nbsp;&nbsp;_train_loader:&nbsp;Training&nbsp;data.<br>
&nbsp;&nbsp;&nbsp;&nbsp;_test_loader:&nbsp;Testing&nbsp;data.<br>&nbsp;</tt></td></tr>
<tr><td>&nbsp;</td>
<td width="100%">Methods defined here:<br>
<dl><dt><a name="BCNNManager-__init__"><strong>__init__</strong></a>(self, options, path)</dt><dd><tt>Prepare&nbsp;the&nbsp;network,&nbsp;criterion,&nbsp;solver,&nbsp;and&nbsp;data.<br>
&nbsp;<br>
Args:<br>
&nbsp;&nbsp;&nbsp;&nbsp;options,&nbsp;dict:&nbsp;Hyperparameters.</tt></dd></dl>

<dl><dt><a name="BCNNManager-getStat"><strong>getStat</strong></a>(self)</dt><dd><tt>Get&nbsp;the&nbsp;mean&nbsp;and&nbsp;std&nbsp;value&nbsp;for&nbsp;a&nbsp;certain&nbsp;dataset.</tt></dd></dl>

<dl><dt><a name="BCNNManager-train"><strong>train</strong></a>(self)</dt><dd><tt>Train&nbsp;the&nbsp;network.</tt></dd></dl>

<hr>
Data descriptors defined here:<br>
<dl><dt><strong>__dict__</strong></dt>
<dd><tt>dictionary&nbsp;for&nbsp;instance&nbsp;variables&nbsp;(if&nbsp;defined)</tt></dd>
</dl>
<dl><dt><strong>__weakref__</strong></dt>
<dd><tt>list&nbsp;of&nbsp;weak&nbsp;references&nbsp;to&nbsp;the&nbsp;object&nbsp;(if&nbsp;defined)</tt></dd>
</dl>
</td></tr></table></td></tr></table><p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#55aa55">
<td colspan=3 valign=bottom>&nbsp;<br>
<font color="#ffffff" face="helvetica, arial"><big><strong>Data</strong></big></font></td></tr>
    
<tr><td bgcolor="#55aa55"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
<td width="100%"><strong>__all__</strong> = ['BCNN', 'BCNNManager']<br>
<strong>__copyright__</strong> = '2018 LAMDA'<br>
<strong>__email__</strong> = 'zhangh0214@gmail.com'<br>
<strong>__license__</strong> = 'CC BY-SA 3.0'<br>
<strong>__status__</strong> = 'Development'<br>
<strong>__updated__</strong> = '2018-01-13'</td></tr></table><p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#7799ee">
<td colspan=3 valign=bottom>&nbsp;<br>
<font color="#ffffff" face="helvetica, arial"><big><strong>Author</strong></big></font></td></tr>
    
<tr><td bgcolor="#7799ee"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
<td width="100%">Hao&nbsp;Zhang</td></tr></table>
</body></html>